home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / 3dvect39 / stars.asm < prev    next >
Encoding:
Assembly Source File  |  1994-10-30  |  43.3 KB  |  1,166 lines

  1. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  2. ;
  3. ; Filename     : STARS.ASM
  4. ; Included from: Main assembley module
  5. ; Description  : Font and cosmetic screen handling routines.
  6. ;                This basically draws backgound screens/opening menus.
  7. ;                Have you played Red Baron or Aces of the Pacific?  It's
  8. ;                kind of like that.
  9. ;
  10. ; Written by: John McCarthy
  11. ;             1316 Redwood Lane
  12. ;             Pickering, Ontario.
  13. ;             Canada, Earth, Milky Way (for those out-of-towners)
  14. ;             L1X 1C5
  15. ;
  16. ; Internet/Usenet:  BRIAN.MCCARTHY@CANREM.COM
  17. ;         Fidonet:  Brian McCarthy 1:229/15
  18. ;   RIME/Relaynet: ->CRS
  19. ;
  20. ; Home phone, (905) 831-1944, don't call at 2 am eh!
  21. ;
  22. ; Send me your protected mode source code!
  23. ; Send me your Objects!
  24. ; But most of all, Send me a postcard!!!!
  25. ;
  26. ; Display backgound stars, 1024 stars.  Routine is  de_sineed  so   only  stars
  27. ; which will be on the  screen  are  calculated.   This  is  first  done  with
  28. ; x angle indexing, then with y angle clipping, then with z distance clipping.
  29. ; this way, stars which most likely wont be visable are not _rotate_pointd with those
  30. ; time-consuming IMUL's.  a mode has also been added to  make  non-perfect  3d
  31. ; stars.  this mode requires that the constants xstar  and ystar  be  adjusted
  32. ; by the user the make the stars "look" the same as perfectly calculated stars
  33. ; however, when these values are adjusted correctly, this routine is about 40%
  34. ; faster. this can be done because the stars are at a constant  distance  from
  35. ; the camera.
  36. ;░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
  37.  
  38.          .386p
  39.          jumps
  40.  
  41. code32   segment para public use32
  42.          assume cs:code32, ds:code32
  43.  
  44. use_half_stars  equ no         ; use full stars or half stars. (full=set to no)
  45. perfect_stars   equ no         ; fast star calculation if no, perfect if yes.
  46.  
  47.          include pmode.ext                  ; protected mode externals
  48.          include xmode.ext                  ; include externals for xmode routines
  49.          include 3d.ext
  50.          include equ.inc
  51.          include macros.inc
  52.  
  53.          public _star_plot
  54.          public _star_colour
  55.          public _star_halfpoint
  56.          public _star_step
  57.  
  58. ; angle tolerence (lower untill stars get clipped)
  59. largest  equ 150                            ; this is good without using z rotations in 320x400
  60.  
  61. ; this is only used when perfect_stars = yes
  62. zdistance equ 13800                         ; z clipping parameter, 16384 = all stars clipped
  63. if perfect_stars eq yes
  64. shift = 14
  65. endif
  66. if perfect_stars eq no
  67. shift = 16
  68. endif
  69.  
  70. xstar    equ ratiox*4/128                   ; these are divided by 4 to give decimals.
  71. ystar    equ ratioy*4/128                   ; used when perfect_stars=no
  72.  
  73. number_of_stars equ 1024                    ; must be 2^some_number
  74. cut             equ 5
  75.  
  76. smatrix         dd 6 dup (0)                ; star matrix, _ematrix*xscale*yscale
  77. angle_count     dw 0
  78. _star_halfpoint dw 512          ;400,600?   ; lower cutoff if use_half_stars = yes
  79. _star_colour    dd 00c0d0e0fh               ; colours for 4 stars
  80. _star_step      dd 2                        ; density of stars, 1 = full, 2 = half
  81.  
  82. we_is_out_of_here:
  83.          ret
  84.  
  85. _star_plot:
  86.          mov si,_eyeax                      ; get camera x angle
  87.          add esi,16384                      ; 1/4 quadrant
  88.          shr esi,5                          ; 32768/2^5 = 1024
  89.          and esi,000007ffh
  90.  
  91.          mov ebp,esi
  92.          add ebp,largest                    ; sweep to bottom
  93.          sub esi,largest                    ; start from top
  94.  
  95.          cmp ebp,number_of_stars-cut
  96.          jle s okmax
  97.          mov ebp,number_of_stars-cut
  98. okmax:
  99.          cmp esi,cut
  100.          jge s ok_min
  101.          mov esi,cut                        ; looking almost directly up
  102. ok_min:
  103.          movzx esi,xn1[esi]
  104.          movzx ebp,xn1[ebp]
  105.  
  106.          mov eax,ebp
  107.          sub eax,esi
  108.          shl eax,2
  109.          mov angle_count,ax
  110.  
  111.          shl esi,2
  112.  
  113.          ;mov angle_count,number_of_stars
  114.          ;mov esi,0                         ; uncomment this!! (along with stuff below)
  115.  
  116.          if use_half_stars eq yes
  117.          cmp esi,_star_halfpoint
  118.          jae s we_is_out_of_here
  119.          endif
  120.  
  121.          call set_star_matrix               ; pre-cal star matrix
  122.  
  123. more_stars:
  124.          mov al,sya[esi]                    ; star_y_angle
  125.          neg al
  126.          sub al,byte ptr _eyeay+1
  127.  
  128.          mov bl,tol[esi]                    ; bx = tol *256
  129.          mov cl,bl
  130.  
  131.          shr cl,1
  132.          movsx ecx,cl
  133.          add al,cl
  134.  
  135.          cmp al,bl
  136.          ja skipit                          ; try removing these skipit jumps!!!
  137. doit:
  138.          push esi
  139.  
  140.          movsx ebx,sxl[esi]                 ; star_x_location
  141.          movsx ecx,syl[esi]
  142.          movsx ebp,szl[esi]
  143.  
  144.          if perfect_stars eq yes
  145.          shl ebx,7                          ; * for some accuracy
  146.          shl ecx,7
  147.          shl ebp,7
  148.  
  149.          call s_rotate_pointz               ; star is eligable, calculate actual screen loc
  150.  
  151.          ;add esi,35000                     ; try this too! (this is the best part)
  152.  
  153.          cmp esi,zdistance                  ; clip if too close (not on apex of sphere)
  154.          jl abort_s
  155.          endif
  156.  
  157.          call s_rotate_pointx               ; check tolerence in parts (saves imul's)
  158.  
  159.          if perfect_stars eq yes
  160.          mov eax,edi                        ; some code from _make3d routine (math.inc)
  161.          cdq
  162.          idiv esi                           ; if fast mode selected, avoid idiv's
  163.          mov edi,eax
  164.          endif
  165.  
  166.          cmp di,_xmins                      ; draw single point/bullet
  167.          jl s abort_s
  168.          cmp di,_xmaxs
  169.          jge s abort_s
  170.  
  171.          call s_rotate_pointy               ; x is ok, solve for y
  172.  
  173.          if perfect_stars eq yes
  174.          mov eax,ecx
  175.          cdq
  176.          idiv ebp
  177.          mov ecx,eax
  178.          endif
  179.  
  180.          cmp cx,_ymins
  181.          jl s abort_s
  182.          cmp cx,_ymaxs                      ; _ymaxs1 if larger star (for high res screens)
  183.          jge abort_s
  184.  
  185.          mov edi, _current_page             ; point to active vga page
  186.          add bx,_xcent
  187.          add cx,_ycent
  188.  
  189.          movzx esi,cx
  190.          mov eax,[esi*4+_fastimultable]     ; get offset to start of line
  191.  
  192.          mov cl, bl                         ; copy to extract plane # from
  193.          shr bx, 2                          ; x offset (bytes) = xpos/4
  194.          add ebx, eax                       ; offset = width*ypos + xpos/4
  195.  
  196.          mov ax, map_mask_plane1            ; map mask & plane select register
  197.          and cl, plane_bits                 ; get plane bits
  198.          shl ah, cl                         ; get plane select value
  199.          out_16 sc_index, ax                ; select plane
  200.  
  201.          pop eax                            ; select colour for star
  202.          push eax
  203.          shr eax,1
  204.          and eax,3                          ; four colours
  205.          mov al,byte ptr _star_colour[eax]
  206.  
  207.          and ebx,0000ffffh
  208.          mov b [edi+ebx],al                 ; draw pixel
  209. ;        add edi,xactual/4
  210. ;        mov b [edi+ebx],al      ; draw larger pixel
  211.  
  212. ; if drawing larger star, change above code to this!
  213. ;        cmp cx,_ymaxs1
  214. ;        jge s abort_s
  215. abort_s:
  216.          pop esi
  217. skipit:
  218.          if use_half_stars eq yes
  219.          cmp si,_star_halfpoint
  220.          jae outhandle
  221.  
  222.          else
  223.          cmp esi,number_of_stars-1-cut
  224.          jae s outhandle
  225.          endif
  226.  
  227.          mov eax,_star_step
  228.          add esi,eax
  229.          sub angle_count,ax
  230.          jnl more_stars
  231.  
  232. outhandle:
  233.          ret
  234.  
  235. ; pre-multiply _ematrix_row*constant_for_row
  236. ; to generate new matrix
  237.  
  238. ; this can be done because we don't have any
  239. ; camera location offsets (stars are at a
  240. ; fixed distance from the camera)
  241.  
  242.          align 4
  243.  
  244.          if perfect_stars eq yes
  245.  
  246. set_star_matrix:
  247.          mov ebx,_ematrix+0
  248.          cmul eax,ebx,ratiox
  249.          mov smatrix+0,eax
  250.  
  251.          if usez eq yes                     ; if not using z rotation, _ematrix+4 =0
  252.          mov ebx,_ematrix+4
  253.          cmul eax,ebx,ratiox
  254.          mov smatrix+4,eax
  255.          endif
  256.  
  257.          mov ebx,_ematrix+8
  258.          cmul eax,ebx,ratiox
  259.          mov smatrix+8,eax
  260.  
  261.          mov ebx,_ematrix+12
  262.          cmul eax,ebx,ratioy
  263.          mov smatrix+12,eax
  264.  
  265.          mov ebx,_ematrix+16
  266.          cmul eax,ebx,ratioy
  267.          mov smatrix+16,eax
  268.  
  269.          mov ebx,_ematrix+20
  270.          cmul eax,ebx,ratioy
  271.          mov smatrix+20,eax
  272.  
  273.          ret
  274.  
  275. ; if perfect_stars = no, stars will not go  through  correct  3d  calculation
  276. ; but will be calculated 40% faster. you  must  set  the  values  xstar   and
  277. ; ystar  to 3d  quick  multipliers  so  this  matrix  calculation  makes  the
  278. ; stars "look" the same.  I did this by moving the camera around and  testing
  279. ; if the stars moved the same as the objects.  I did this because the objects
  280. ; go through the correct 3d calculation and this gave me a base by  which  to
  281. ; adjust these numbers.
  282.  
  283.          else
  284.  
  285. set_star_matrix:
  286.          mov ebx,_ematrix+0
  287.          cmul eax,ebx,xstar
  288.          mov smatrix+0,eax
  289.  
  290.          if usez eq yes                     ; if not using z rotation, _ematrix+4 =0
  291.          mov ebx,_ematrix+4
  292.          cmul eax,ebx,xstar
  293.          mov smatrix+4,eax
  294.          endif
  295.  
  296.          mov ebx,_ematrix+8
  297.          cmul eax,ebx,xstar
  298.          mov smatrix+8,eax
  299.  
  300.          mov ebx,_ematrix+12
  301.          cmul eax,ebx,ystar
  302.          mov smatrix+12,eax
  303.  
  304.          mov ebx,_ematrix+16
  305.          cmul eax,ebx,ystar
  306.          mov smatrix+16,eax
  307.  
  308.          mov ebx,_ematrix+20
  309.          cmul eax,ebx,ystar
  310.          mov smatrix+20,eax
  311.  
  312.          ret
  313.          endif
  314.  
  315. ; _rotate_point star using smatrix (imported from math.inc)
  316.  
  317.          align 4
  318.  
  319. s_rotate_pointx:
  320.          mov eax,smatrix+8
  321.          imul ebp
  322.          shrd eax,edx,shift
  323.          mov edi,eax
  324.          if usez eq yes
  325.          mov eax,smatrix+4
  326.          imul ecx
  327.          shrd eax,edx,shift
  328.          add edi,eax
  329.          endif
  330.          mov eax,smatrix+0
  331.          imul ebx
  332.          shrd eax,edx,shift
  333.          add edi,eax                        ; di = new x
  334.          ret
  335.  
  336.          align 4
  337.  
  338. s_rotate_pointy:
  339.          mov eax,smatrix+16
  340.          imul ecx
  341.          shrd eax,edx,shift
  342.          mov ecx,eax
  343.          mov eax,smatrix+20
  344.          imul ebp
  345.          shrd eax,edx,shift
  346.          add ecx,eax
  347.          mov eax,smatrix+12
  348.          imul ebx
  349.          shrd eax,edx,shift
  350.          add ecx,eax                        ; cx = new y
  351.  
  352.          mov ebp,esi
  353.          mov ebx,edi
  354.          ret
  355.  
  356.          if perfect_stars eq yes
  357.          align 4
  358.  
  359. s_rotate_pointz:
  360.          mov eax,_ematrix+32
  361.          imul ebp
  362.          shrd eax,edx,shift
  363.          mov esi,eax
  364.          mov eax,_ematrix+28
  365.          imul ecx
  366.          shrd eax,edx,shift
  367.          add esi,eax
  368.          mov eax,_ematrix+24
  369.          imul ebx
  370.          shrd eax,edx,shift
  371.          add esi,eax                        ; si = new z
  372.  
  373.          ret
  374.          endif
  375.  
  376. ;        include stardata.inc
  377.  
  378. ; random stars list
  379.  
  380. sxl      db  -1,-1,1,0,-1,-5,1,2
  381.          db  -1,-2,-4,-10,-10,9,10,10
  382.          db  -7,13,1,-14,6,-17,8,18
  383.          db  14,18,20,-22,-1,22,-10,-18
  384.          db  -20,25,4,16,-21,-27,-26,-7
  385.          db  -29,-31,-26,21,33,33,31,-32
  386.          db  20,17,3,-38,-37,22,-37,8
  387.          db  19,-34,6,21,15,-29,-42,-36
  388.          db  -31,-37,21,20,-2,38,46,-42
  389.          db  -51,33,-31,1,45,-47,-38,6
  390.          db  0,-55,-13,4,-8,-53,-21,57
  391.          db  -45,-51,-51,-4,52,37,-62,-39
  392.          db  -24,61,-10,53,-4,-62,-41,-44
  393.          db  -66,40,24,9,-30,-61,-31,19
  394.          db  47,52,69,-21,22,-36,-61,-3
  395.          db  -45,-17,54,16,73,-6,-53,60
  396.          db  74,73,51,-54,35,56,-43,73
  397.          db  66,-79,-71,-32,-33,4,35,-70
  398.          db  70,-10,-83,72,55,59,-80,83
  399.          db  -40,-15,84,-80,69,-24,86,-30
  400.          db  63,-76,-27,-72,-55,-39,68,83
  401.          db  29,18,46,85,90,-3,-53,82
  402.          db  -24,43,-91,78,92,80,90,56
  403.          db  84,-52,90,-7,-80,30,3,-89
  404.          db  43,88,81,-72,1,69,65,-98
  405.          db  -3,-93,-77,-96,-97,-56,98,-20
  406.          db  -84,96,-31,-22,-58,50,-101,-20
  407.          db  -17,-7,-91,-14,97,-99,93,100
  408.          db  24,-75,98,-101,91,-105,88,25
  409.          db  101,-97,-97,-94,34,-38,-6,106
  410.          db  -53,89,-51,-69,102,-62,106,53
  411.          db  -67,43,-106,-109,83,32,94,-72
  412.          db  -104,-108,102,56,15,95,99,-110
  413.          db  -4,-87,-39,-103,85,-100,-41,-80
  414.          db  -111,-108,90,80,98,50,-17,108
  415.          db  -28,26,-114,113,-44,67,110,94
  416.          db  105,59,-18,2,29,61,-110,96
  417.          db  113,-112,-69,106,-115,115,-37,-53
  418.          db  2,-84,-71,-35,-70,-82,28,-110
  419.          db  1,113,90,16,82,116,71,-83
  420.          db  101,107,112,-10,77,118,97,64
  421.          db  -47,93,101,-120,119,-5,-91,-45
  422.          db  -87,-116,116,-69,-63,-67,-79,-112
  423.          db  88,93,117,80,8,-119,106,-111
  424.          db  -40,120,-18,-22,-119,103,-14,28
  425.          db  -79,-36,-64,7,22,-121,-18,39
  426.          db  -24,-122,-32,121,120,-3,-99,111
  427.          db  -124,122,110,-45,-117,-102,-54,122
  428.          db  123,45,-76,64,102,72,-94,24
  429.          db  -32,-65,121,95,100,108,-124,-17
  430.          db  -79,17,-122,-34,-72,-81,-65,108
  431.          db  121,-124,-118,85,124,-77,33,-12
  432.          db  -118,32,71,-94,116,125,99,-102
  433.          db  120,-119,79,108,-122,40,29,51
  434.          db  125,-125,98,-81,-119,25,-36,-121
  435.          db  89,-2,9,-85,-111,101,-12,60
  436.          db  -109,127,-107,95,102,5,-13,-105
  437.          db  -53,66,31,84,-123,71,54,127
  438.          db  -64,127,113,122,-41,124,92,81
  439.          db  -115,84,125,123,24,-86,117,2
  440.          db  123,125,-45,-49,95,-49,-29,105
  441.          db  -128,-13,-128,20,-3,9,-16,28
  442.          db  -32,-101,106,-123,82,-125,-73,-123
  443.          db  102,104,-34,45,125,85,-73,121
  444.          db  -103,100,-82,-87,38,112,-35,77
  445.          if use_half_stars eq no
  446.          db  127,-79,-104,-59,-52,-19,-58,-18
  447.          db  -121,121,56,65,79,-117,-9,80
  448.          db  -43,-68,83,74,101,-56,-9,13
  449.          db  -2,-121,117,49,-122,29,72,126
  450.          db  -10,111,32,-106,114,103,46,-77
  451.          db  -100,90,110,118,-85,-121,23,57
  452.          db  -119,22,-68,123,-124,-121,-104,114
  453.          db  44,-12,-124,58,122,-87,25,42
  454.          db  -80,-79,-28,-116,112,121,-31,47
  455.          db  -18,-99,123,100,-115,-40,118,54
  456.          db  108,-65,-90,39,-112,122,-126,113
  457.          db  53,27,30,-82,50,59,-1,83
  458.          db  -116,-3,123,-91,21,-116,-17,14
  459.          db  120,-25,58,112,-89,-33,-2,-51
  460.          db  80,-121,-86,67,77,-104,69,-22
  461.          db  -22,21,120,24,90,86,30,-41
  462.          db  -114,-117,-93,31,-120,-78,104,-88
  463.          db  111,109,117,-123,-46,-95,-122,22
  464.          db  -122,-87,4,72,110,115,-114,-104
  465.          db  -122,36,-90,-118,117,26,-53,54
  466.          db  -61,118,-114,94,94,100,-80,-25
  467.          db  119,-55,106,40,-104,109,118,-52
  468.          db  -113,79,-102,35,-9,111,72,-54
  469.          db  -12,-15,87,-110,-109,65,7,22
  470.          db  -66,-116,75,-95,-93,102,30,-23
  471.          db  40,-6,62,32,-114,-111,91,-115
  472.          db  -65,-28,-3,72,-82,-52,35,110
  473.          db  112,9,52,-6,-75,-56,81,92
  474.          db  44,-57,-31,-35,-43,80,-64,67
  475.          db  110,-112,93,-105,-6,-14,-46,-60
  476.          db  -83,-40,101,29,100,-97,-1,106
  477.          db  108,-107,54,-89,-60,-107,77,-39
  478.          db  -103,-81,-85,6,5,105,44,-91
  479.          db  85,63,97,-21,61,9,-97,-45
  480.          db  -55,-89,75,102,-104,-101,-55,29
  481.          db  47,60,29,-98,-86,-20,-83,94
  482.          db  -8,-86,44,-97,-63,14,-97,-78
  483.          db  10,88,-88,-83,-81,89,-83,97
  484.          db  77,37,-94,-64,37,85,80,88
  485.          db  25,-76,-65,81,-93,39,73,-93
  486.          db  -61,-93,9,90,63,20,-45,-10
  487.          db  -84,88,-91,89,90,-90,-71,63
  488.          db  -19,-8,-70,81,79,-83,29,49
  489.          db  -40,-67,-84,41,-76,27,-71,-69
  490.          db  -4,-84,-17,31,-49,-24,79,71
  491.          db  65,-17,-42,80,6,16,-77,-79
  492.          db  -77,-64,14,-41,-2,36,52,76
  493.          db  36,71,73,10,30,70,-70,-28
  494.          db  -43,45,-51,70,70,-61,-71,57
  495.          db  66,32,5,-68,3,65,66,-62
  496.          db  1,65,62,-65,28,16,60,40
  497.          db  -14,-50,-22,39,-35,59,-46,-28
  498.          db  55,13,50,-40,-24,52,47,-26
  499.          db  -7,-39,-49,-47,43,-51,50,23
  500.          db  10,20,-49,-46,35,44,35,37
  501.          db  -35,-3,9,-37,-2,-32,-33,40
  502.          db  2,-41,18,-21,-23,-25,30,22
  503.          db  35,-9,34,12,20,-29,-31,-1
  504.          db  30,30,-27,-27,-28,-13,-27,-23
  505.          db  0,1,-14,-17,-14,-20,-17,-14
  506.          db  14,2,17,9,12,15,11,12
  507.          db  -11,-10,8,-9,6,-9,7,1
  508.          db  5,2,-6,-5,1,-2,-1,-1
  509.          endif
  510.  
  511. syl      db  -128,-128,-128,-128,-128,-128,-128,-128
  512.          db  -128,-128,-128,-128,-128,-128,-128,-128
  513.          db  -128,-128,-128,-128,-127,-127,-127,-127
  514.          db  -127,-127,-127,-127,-127,-126,-126,-126
  515.          db  -126,-126,-126,-126,-125,-125,-125,-125
  516.          db  -125,-125,-124,-124,-124,-124,-124,-124
  517.          db  -123,-123,-123,-123,-123,-122,-122,-122
  518.          db  -122,-122,-121,-121,-121,-121,-120,-120
  519.          db  -120,-120,-120,-119,-119,-119,-119,-118
  520.          db  -118,-118,-118,-118,-117,-117,-117,-117
  521.          db  -116,-116,-116,-116,-115,-115,-115,-115
  522.          db  -114,-114,-114,-114,-113,-113,-113,-113
  523.          db  -112,-112,-112,-112,-111,-111,-111,-110
  524.          db  -110,-110,-110,-109,-109,-109,-109,-108
  525.          db  -108,-108,-108,-107,-107,-107,-106,-106
  526.          db  -106,-106,-105,-105,-105,-104,-104,-104
  527.          db  -104,-103,-103,-103,-103,-102,-102,-102
  528.          db  -101,-101,-101,-101,-100,-100,-100,-99
  529.          db  -99,-99,-99,-98,-98,-98,-97,-97
  530.          db  -97,-97,-96,-96,-96,-95,-95,-95
  531.          db  -95,-94,-94,-94,-93,-93,-93,-93
  532.          db  -92,-92,-92,-91,-91,-91,-91,-90
  533.          db  -90,-90,-89,-89,-89,-89,-88,-88
  534.          db  -88,-87,-87,-87,-87,-86,-86,-86
  535.          db  -85,-85,-85,-85,-84,-84,-84,-83
  536.          db  -83,-83,-83,-82,-82,-82,-81,-81
  537.          db  -81,-81,-80,-80,-80,-79,-79,-79
  538.          db  -79,-78,-78,-78,-77,-77,-77,-77
  539.          db  -76,-76,-76,-75,-75,-75,-75,-74
  540.          db  -74,-74,-73,-73,-73,-73,-72,-72
  541.          db  -72,-71,-71,-71,-71,-70,-70,-70
  542.          db  -70,-69,-69,-69,-68,-68,-68,-68
  543.          db  -67,-67,-67,-66,-66,-66,-66,-65
  544.          db  -65,-65,-64,-64,-64,-64,-63,-63
  545.          db  -63,-63,-62,-62,-62,-61,-61,-61
  546.          db  -61,-60,-60,-60,-60,-59,-59,-59
  547.          db  -58,-58,-58,-58,-57,-57,-57,-57
  548.          db  -56,-56,-56,-55,-55,-55,-55,-54
  549.          db  -54,-54,-54,-53,-53,-53,-52,-52
  550.          db  -52,-52,-51,-51,-51,-51,-50,-50
  551.          db  -50,-50,-49,-49,-49,-48,-48,-48
  552.          db  -48,-47,-47,-47,-47,-46,-46,-46
  553.          db  -46,-45,-45,-45,-44,-44,-44,-44
  554.          db  -43,-43,-43,-43,-42,-42,-42,-42
  555.          db  -41,-41,-41,-41,-40,-40,-40,-39
  556.          db  -39,-39,-39,-38,-38,-38,-38,-37
  557.          db  -37,-37,-37,-36,-36,-36,-36,-35
  558.          db  -35,-35,-35,-34,-34,-34,-33,-33
  559.          db  -33,-33,-32,-32,-32,-32,-31,-31
  560.          db  -31,-31,-30,-30,-30,-30,-29,-29
  561.          db  -29,-29,-28,-28,-28,-28,-27,-27
  562.          db  -27,-27,-26,-26,-26,-25,-25,-25
  563.          db  -25,-24,-24,-24,-24,-23,-23,-23
  564.          db  -23,-22,-22,-22,-22,-21,-21,-21
  565.          db  -21,-20,-20,-20,-20,-19,-19,-19
  566.          db  -19,-18,-18,-18,-18,-17,-17,-17
  567.          db  -17,-16,-16,-16,-16,-15,-15,-15
  568.          db  -15,-14,-14,-14,-14,-13,-13,-13
  569.          db  -13,-12,-12,-12,-12,-11,-11,-11
  570.          db  -11,-10,-10,-10,-10,-9,-9,-9
  571.          db  -9,-8,-8,-8,-8,-7,-7,-7
  572.          db  -7,-6,-6,-6,-6,-5,-5,-5
  573.          db  -5,-4,-4,-4,-4,-3,-3,-3
  574.          db  -3,-2,-2,-2,-2,-1,-1,-1
  575.          db  0,0,0,0,1,1,1,1
  576.          if use_half_stars eq no
  577.          db  2,2,2,2,3,3,3,3
  578.          db  4,4,4,4,5,5,5,5
  579.          db  6,6,6,6,7,7,7,7
  580.          db  8,8,8,8,9,9,9,9
  581.          db  10,10,10,10,11,11,11,11
  582.          db  12,12,12,12,13,13,13,13
  583.          db  14,14,14,14,15,15,15,15
  584.          db  16,16,16,16,17,17,17,17
  585.          db  18,18,18,18,19,19,19,19
  586.          db  20,20,20,20,21,21,21,21
  587.          db  22,22,22,22,23,23,23,23
  588.          db  24,24,24,24,25,25,25,26
  589.          db  26,26,26,27,27,27,27,28
  590.          db  28,28,28,29,29,29,29,30
  591.          db  30,30,30,31,31,31,31,32
  592.          db  32,32,32,33,33,33,34,34
  593.          db  34,34,35,35,35,35,36,36
  594.          db  36,36,37,37,37,37,38,38
  595.          db  38,38,39,39,39,40,40,40
  596.          db  40,41,41,41,41,42,42,42
  597.          db  42,43,43,43,43,44,44,44
  598.          db  45,45,45,45,46,46,46,46
  599.          db  47,47,47,47,48,48,48,49
  600.          db  49,49,49,50,50,50,50,51
  601.          db  51,51,51,52,52,52,53,53
  602.          db  53,53,54,54,54,54,55,55
  603.          db  55,56,56,56,56,57,57,57
  604.          db  57,58,58,58,59,59,59,59
  605.          db  60,60,60,60,61,61,61,62
  606.          db  62,62,62,63,63,63,63,64
  607.          db  64,64,65,65,65,65,66,66
  608.          db  66,67,67,67,67,68,68,68
  609.          db  69,69,69,69,70,70,70,70
  610.          db  71,71,71,72,72,72,72,73
  611.          db  73,73,74,74,74,74,75,75
  612.          db  75,76,76,76,76,77,77,77
  613.          db  78,78,78,78,79,79,79,80
  614.          db  80,80,80,81,81,81,82,82
  615.          db  82,82,83,83,83,84,84,84
  616.          db  84,85,85,85,86,86,86,86
  617.          db  87,87,87,88,88,88,88,89
  618.          db  89,89,90,90,90,90,91,91
  619.          db  91,92,92,92,92,93,93,93
  620.          db  94,94,94,94,95,95,95,96
  621.          db  96,96,96,97,97,97,98,98
  622.          db  98,98,99,99,99,100,100,100
  623.          db  100,101,101,101,102,102,102,102
  624.          db  103,103,103,103,104,104,104,105
  625.          db  105,105,105,106,106,106,107,107
  626.          db  107,107,108,108,108,108,109,109
  627.          db  109,109,110,110,110,111,111,111
  628.          db  111,112,112,112,112,113,113,113
  629.          db  113,114,114,114,114,115,115,115
  630.          db  115,116,116,116,116,117,117,117
  631.          db  117,117,118,118,118,118,119,119
  632.          db  119,119,119,120,120,120,120,121
  633.          db  121,121,121,121,122,122,122,122
  634.          db  122,123,123,123,123,123,123,124
  635.          db  124,124,124,124,124,125,125,125
  636.          db  125,125,125,125,126,126,126,126
  637.          db  126,126,126,126,126,127,127,127
  638.          db  127,127,127,127,127,127,127,127
  639.          db  127,127,127,127,127,127,127,127
  640.          endif
  641.  
  642. szl      db  -1,0,-1,-3,3,-2,-5,5
  643.          db  6,7,-8,-2,1,5,5,7
  644.          db  -12,5,-15,7,-15,-4,-16,2
  645.          db  -13,-8,2,3,-23,-4,21,-18
  646.          db  16,-5,-27,21,18,-11,-15,29
  647.          db  -11,-7,19,-25,-4,3,-15,-17
  648.          db  29,-32,-38,3,12,32,14,-40
  649.          db  -37,24,-42,-38,-41,33,15,27
  650.          db  -34,-29,-42,42,-48,29,15,-28
  651.          db  1,38,41,-52,25,25,-39,-54
  652.          db  -55,-5,54,55,55,21,53,7
  653.          db  -39,-31,-31,59,-31,-49,1,-49
  654.          db  -58,13,-63,-35,64,20,50,-50
  655.          db  8,-53,62,66,-62,-31,61,66
  656.          db  -51,-46,-9,-68,67,-63,-40,72
  657.          db  -58,71,49,-72,-10,-75,-54,-46
  658.          db  -15,20,56,55,-69,-54,-66,-27
  659.          db  -43,11,-37,73,-74,-81,72,41
  660.          db  -42,-82,-7,-41,61,57,26,11
  661.          db  74,83,11,29,-50,82,-3,-82
  662.          db  -60,42,-84,-51,69,-80,56,29
  663.          db  84,-88,76,27,0,90,74,-40
  664.          db  88,-81,-19,-49,-11,46,20,-75
  665.          db  39,78,-27,94,-51,-91,-96,-37
  666.          db  -86,-38,50,-65,-97,68,-72,5
  667.          db  -98,-32,-62,25,-23,82,-7,97
  668.          db  54,-25,-96,-99,-83,-88,-4,99
  669.          db  100,101,-47,101,-32,-28,41,20
  670.          db  100,71,-32,24,-49,0,55,-102
  671.          db  -25,-43,-43,-50,99,98,105,2
  672.          db  -93,-58,-94,82,32,-89,11,-94
  673.          db  85,-99,-25,-5,-70,-104,53,-83
  674.          db  35,-19,-38,94,-109,55,-47,14
  675.          db  110,-70,-105,43,-71,49,103,-79
  676.          db  14,32,66,-79,53,-101,-112,29
  677.          db  -110,-110,2,-3,104,-92,-30,-64
  678.          db  -45,97,-113,-115,110,96,-34,62
  679.          db  19,31,-94,45,-16,-13,110,-104
  680.          db  116,81,-93,111,-94,-84,-114,42
  681.          db  -118,-30,75,-117,84,-15,-94,84
  682.          db  60,48,-38,118,89,6,67,99
  683.          db  -110,-74,61,2,-4,119,77,-112
  684.          db  82,30,-27,-99,-103,100,91,-45
  685.          db  -82,76,26,-91,120,23,-57,-50
  686.          db  114,17,120,-120,27,-64,-122,118
  687.          db  -94,-117,-105,-122,120,-23,-122,115
  688.          db  120,13,-119,-20,22,123,-74,-53
  689.          db  -7,16,-55,115,-41,-71,111,16
  690.          db  -7,-116,98,105,70,100,-82,-122
  691.          db  120,-107,27,-80,74,61,19,-124
  692.          db  96,123,-30,120,-103,-97,-108,62
  693.          db  29,19,43,92,-18,-100,120,125
  694.          db  -46,121,-104,-85,-47,3,-77,74
  695.          db  37,-44,-98,-66,-36,119,-123,-116
  696.          db  14,19,79,-98,44,-124,-122,-39
  697.          db  -90,126,126,94,62,-77,-127,-112
  698.          db  66,0,69,83,-75,-127,-127,-73
  699.          db  115,108,-124,-96,32,105,-116,-7
  700.          db  -111,6,57,36,120,-29,-88,-99
  701.          db  55,95,-25,33,-126,-95,48,127
  702.          db  -34,-25,-120,-119,-85,-119,124,-73
  703.          db  -5,127,12,-127,-128,127,-128,-125
  704.          db  -125,-80,71,-36,97,27,105,-38
  705.          db  76,-74,123,119,-24,94,105,38
  706.          db  -77,-80,98,94,-122,61,-124,-102
  707.          if use_half_stars eq no
  708.          db  14,-101,-75,-114,117,-127,-115,-127
  709.          db  -44,40,-115,110,-101,-53,127,99
  710.          db  120,108,-97,-105,-78,-116,-128,-128
  711.          db  -128,-43,50,117,-40,124,104,-19
  712.          db  127,62,-124,-72,57,-75,-119,101
  713.          db  -80,90,-64,-48,95,-41,-126,113
  714.          db  46,125,107,32,29,-42,73,-55
  715.          db  -120,-127,29,112,33,93,-125,-120
  716.          db  -99,99,-124,-52,-58,34,122,117
  717.          db  125,-80,26,-76,-54,-120,44,113
  718.          db  -64,108,88,-120,-58,27,9,54
  719.          db  113,122,121,95,114,-111,-126,-94
  720.          db  -50,125,21,-87,-124,48,123,-125
  721.          db  -34,122,-111,54,87,120,124,-114
  722.          db  94,31,-90,104,96,68,102,-122
  723.          db  121,-122,-27,-122,-84,-89,119,-117
  724.          db  47,-40,80,-119,-27,95,-66,-86
  725.          db  51,-55,-34,4,-114,-78,-15,120
  726.          db  -10,85,-122,97,50,-38,-44,63
  727.          db  -4,115,82,27,29,-118,108,-108
  728.          db  -105,24,40,74,74,66,89,117
  729.          db  8,106,53,112,59,-48,10,107
  730.          db  39,-89,62,-114,118,-40,-94,-106
  731.          db  117,117,78,43,-47,-98,117,-116
  732.          db  -98,16,-89,-69,70,-56,-113,114
  733.          db  108,115,-99,111,24,-35,-71,-13
  734.          db  95,-112,114,88,-82,-103,108,28
  735.          db  -22,-114,-102,-114,86,98,78,65
  736.          db  -104,-98,108,106,104,77,92,88
  737.          db  14,-5,-61,-39,-112,-111,101,93
  738.          db  -74,-104,-42,106,45,52,-110,26
  739.          db  14,25,94,63,90,-21,75,100
  740.          db  -32,71,65,107,-107,-14,97,56
  741.          db  -64,-85,-42,103,85,-105,41,95
  742.          db  -90,-57,71,18,3,25,-89,99
  743.          db  -92,83,-99,32,56,-101,59,-38
  744.          db  101,54,-91,30,-79,-100,25,-63
  745.          db  99,45,-48,54,-58,-42,52,-8
  746.          db  -61,90,25,-74,-90,45,52,38
  747.          db  -93,-59,70,-49,21,85,59,-17
  748.          db  71,-14,92,-21,-68,-91,80,91
  749.          db  38,-23,3,-18,-5,-6,56,-63
  750.          db  -88,88,-55,34,-39,-30,82,71
  751.          db  77,-56,-22,-76,40,80,47,-50
  752.          db  84,-4,81,-78,67,79,-23,-41
  753.          db  -49,79,69,-1,79,-79,-21,-8
  754.          db  -17,-47,76,66,-78,67,55,0
  755.          db  -67,-24,-16,73,67,22,24,-68
  756.          db  58,56,-52,9,-7,-38,5,39
  757.          db  18,-61,-69,-11,67,13,5,25
  758.          db  -66,-8,-17,3,57,61,19,48
  759.          db  -61,36,57,46,-50,6,38,52
  760.          db  17,56,-27,-42,-52,-21,28,48
  761.          db  54,37,22,-25,-29,-13,-12,44
  762.          db  -50,45,7,-18,32,-16,30,26
  763.          db  30,-46,43,-25,-44,28,27,11
  764.          db  -41,1,-36,-34,31,-29,-22,29
  765.          db  -4,-35,-2,31,26,-17,-11,31
  766.          db  5,-2,12,-12,2,-25,3,13
  767.          db  25,-25,19,-17,17,9,-13,14
  768.          db  -13,-19,-1,14,-11,-4,8,7
  769.          db  -8,-8,7,6,-8,2,-4,7
  770.          db  -5,5,0,-2,3,-3,1,-1
  771.          endif
  772.  
  773. sya      db  79,28,-85,-119,2,74,-117,-18
  774.          db  1,6,110,70,58,-44,-43,-39
  775.          db  106,-49,-123,42,-112,72,-107,-59
  776.          db  -94,-79,-59,56,126,-71,17,96
  777.          db  35,-71,-122,-26,33,79,85,8
  778.          db  78,72,38,-99,-69,-60,-82,83
  779.          db  -25,-108,-124,60,50,-25,48,-119
  780.          db  -108,38,-123,-108,-114,28,49,36
  781.          db  97,90,-109,-19,127,-38,-52,87
  782.          db  63,-30,25,-127,-44,43,96,-124
  783.          db  -128,67,8,-4,5,48,14,-59
  784.          db  92,86,86,2,-86,-102,63,100
  785.          db  112,-56,121,-88,2,50,27,98
  786.          db  58,-102,-16,-6,109,83,18,-12
  787.          db  -98,-94,-69,116,-14,106,87,1
  788.          db  100,9,-34,-119,-70,125,96,-91
  789.          db  -72,-53,-31,31,-109,-95,104,-79
  790.          db  -88,58,83,16,110,-126,-19,41
  791.          db  -86,123,67,-85,-30,-33,51,-59
  792.          db  19,6,-59,49,-90,11,-66,113
  793.          db  -95,42,115,89,27,109,-36,-51
  794.          db  -14,-120,-23,-52,-64,1,25,-83
  795.          db  10,-108,72,-87,-69,-43,-56,-102
  796.          db  -47,23,-76,2,87,-115,-127,79
  797.          db  -109,-81,-42,94,-128,-33,-98,61
  798.          db  126,77,91,53,73,24,-67,8
  799.          db  40,-75,115,119,102,-107,65,7
  800.          db  6,2,83,5,-77,74,-47,-56
  801.          db  -10,32,-77,54,-84,63,-41,-119
  802.          db  -74,80,80,83,-14,14,1,-64
  803.          db  106,-88,107,28,-52,103,-60,-107
  804.          db  26,-112,73,65,-93,-116,-44,99
  805.          db  50,70,-79,-22,-123,-43,-82,58
  806.          db  1,91,113,47,-93,45,15,95
  807.          db  58,52,-39,-96,-44,-110,121,-54
  808.          db  118,-119,63,-66,16,-103,-75,-88
  809.          db  -81,-23,121,-128,-11,-24,76,-41
  810.          db  -58,52,102,-48,69,-69,12,109
  811.          db  -1,32,101,12,101,96,-118,49
  812.          db  -128,-75,-36,-123,-32,-69,-102,31
  813.          db  -42,-47,-78,3,-30,-62,-40,-24
  814.          db  111,-92,-42,63,-66,1,35,112
  815.          db  33,53,-74,103,105,23,28,79
  816.          db  -95,-36,-55,-99,-3,55,-84,81
  817.          db  13,-59,5,120,54,-87,123,-10
  818.          db  99,115,105,-126,-8,71,122,-14
  819.          db  7,59,117,-71,-57,0,90,-82
  820.          db  66,-59,-83,14,77,88,18,-59
  821.          db  -67,-113,26,-23,-40,-26,93,-120
  822.          db  10,105,-55,-93,-39,-43,57,122
  823.          db  27,-6,73,10,103,99,105,-43
  824.          db  -55,57,49,-31,-70,101,-12,3
  825.          db  79,-11,-104,93,-80,-63,-91,38
  826.          db  -52,78,-101,-87,75,-14,-119,-111
  827.          db  -60,57,-37,99,49,-120,116,76
  828.          db  -96,0,-3,29,42,-91,124,-108
  829.          db  41,-64,40,-35,-90,-127,123,88
  830.          db  17,-23,-118,-99,53,-25,-110,-66
  831.          db  106,-62,-45,-53,13,-74,-95,-100
  832.          db  45,-30,-72,-54,-121,97,-48,-1
  833.          db  -75,-72,113,112,-94,112,9,-89
  834.          db  65,3,59,-122,127,-3,123,-119
  835.          db  117,91,-40,75,-29,55,24,76
  836.          db  -38,-89,10,-15,-72,-30,24,-52
  837.          db  89,-92,28,30,-116,-44,116,-102
  838.          if use_half_stars eq no
  839.          db  -60,100,89,108,16,121,108,122
  840.          db  78,-51,-110,-22,-101,81,2,-28
  841.          db  13,22,-100,-103,-91,109,125,-124
  842.          db  127,77,-48,-17,76,-10,-25,-70
  843.          db  2,-44,-118,88,-46,-90,-113,26
  844.          db  91,-33,-86,-80,29,77,-121,-20
  845.          db  48,-8,22,-54,54,77,38,-82
  846.          db  -114,124,54,-20,-54,30,-120,-115
  847.          db  100,27,118,80,-84,-53,9,-16
  848.          db  5,91,-56,-91,81,115,-50,-19
  849.          db  -86,21,32,-116,83,-56,61,-46
  850.          db  -18,-9,-10,28,-17,-108,127,-99
  851.          db  80,0,-57,95,-122,47,5,-124
  852.          db  -75,7,-109,-46,32,10,0,111
  853.          db  -29,53,96,-24,-28,40,-25,120
  854.          db  7,-122,-73,-120,-95,-97,-11,114
  855.          db  47,77,34,-118,73,27,-87,95
  856.          db  -47,-83,-76,62,112,92,68,-8
  857.          db  67,32,-127,-27,-47,-77,78,41
  858.          db  65,-13,33,54,-55,-120,18,-110
  859.          db  106,-56,49,-37,-37,-41,29,8
  860.          db  -62,19,-45,-15,42,-81,-61,18
  861.          db  50,-99,41,-116,2,-78,-102,108
  862.          db  4,5,-35,48,80,-104,-3,-121
  863.          db  103,58,-100,89,37,-85,-118,7
  864.          db  -15,2,-106,-12,55,76,-91,68
  865.          db  24,118,1,-28,96,108,-13,-54
  866.          db  -72,-125,-109,126,28,20,-33,-39
  867.          db  -112,106,11,12,15,-33,24,-27
  868.          db  -59,65,-88,78,125,123,17,22
  869.          db  93,113,-80,-11,-47,43,127,-54
  870.          db  -59,54,-22,38,23,71,-33,14
  871.          db  76,34,37,-3,-126,-70,-18,41
  872.          db  -91,-102,-81,7,-26,-125,47,17
  873.          db  105,87,-34,-57,62,53,105,-12
  874.          db  -109,-26,-117,50,40,120,38,-80
  875.          db  2,40,-110,51,100,-123,53,91
  876.          db  -5,-45,84,40,89,-82,40,-68
  877.          db  -92,-17,53,99,-112,-44,-41,-48
  878.          db  -118,90,30,-87,54,-18,-37,71
  879.          db  28,69,-5,-74,-98,-119,20,4
  880.          db  46,-75,62,-72,-66,66,36,-96
  881.          db  119,3,90,-48,-83,77,-14,-25
  882.          db  19,92,74,-108,43,-14,39,89
  883.          db  1,65,8,-113,25,11,-76,-85
  884.          db  -90,8,22,-65,-4,-120,74,67
  885.          db  72,89,-8,22,127,-21,-31,-64
  886.          db  -108,-78,-73,-6,-18,-52,50,112
  887.          db  25,-28,96,-59,-68,86,60,-40
  888.          db  -53,-108,-125,70,-3,-56,-61,47
  889.          db  -127,-69,-75,62,-20,-11,-52,-29
  890.          db  118,37,14,-29,103,-60,35,19
  891.          db  -52,-10,-84,96,110,-79,-43,19
  892.          db  5,32,46,83,-88,74,-74,-20
  893.          db  -120,-17,57,78,-34,-78,-35,-39
  894.          db  34,125,-9,88,126,34,35,-53
  895.          db  -126,62,-109,105,25,99,-89,-27
  896.          db  -68,118,-66,-15,-27,85,76,0
  897.          db  -57,-67,45,81,60,107,58,41
  898.          db  -1,-126,25,95,27,45,89,30
  899.          db  -93,-123,-66,-25,-92,-75,-39,-43
  900.          db  88,92,-36,37,-100,50,-83,-11
  901.          db  -92,-17,57,76,-18,105,11,91
  902.          endif
  903.  
  904. xn1      db  0,0,0,0,0,0,0,0
  905.          db  0,1,1,1,1,1,1,1
  906.          db  1,1,2,2,2,2,2,2
  907.          db  2,2,3,3,3,3,3,3
  908.          db  3,3,4,4,4,4,4,4
  909.          db  4,4,5,5,5,5,5,5
  910.          db  5,5,6,6,6,6,6,6
  911.          db  6,7,7,7,7,7,7,7
  912.          db  7,8,8,8,8,8,8,8
  913.          db  9,9,9,9,9,9,9,10
  914.          db  10,10,10,10,10,10,11,11
  915.          db  11,11,11,11,11,12,12,12
  916.          db  12,12,12,12,13,13,13,13
  917.          db  13,13,14,14,14,14,14,14
  918.          db  14,15,15,15,15,15,15,16
  919.          db  16,16,16,16,16,17,17,17
  920.          db  17,17,17,18,18,18,18,18
  921.          db  18,18,19,19,19,19,19,20
  922.          db  20,20,20,20,20,21,21,21
  923.          db  21,21,21,22,22,22,22,22
  924.          db  23,23,23,23,23,23,24,24
  925.          db  24,24,24,25,25,25,25,25
  926.          db  25,26,26,26,26,26,27,27
  927.          db  27,27,27,28,28,28,28,28
  928.          db  29,29,29,29,29,30,30,30
  929.          db  30,30,31,31,31,31,31,32
  930.          db  32,32,32,32,33,33,33,33
  931.          db  34,34,34,34,34,35,35,35
  932.          db  35,36,36,36,36,36,37,37
  933.          db  37,37,38,38,38,38,38,39
  934.          db  39,39,39,40,40,40,40,41
  935.          db  41,41,41,41,42,42,42,42
  936.          db  43,43,43,43,44,44,44,44
  937.          db  45,45,45,45,46,46,46,46
  938.          db  47,47,47,47,48,48,48,48
  939.          db  49,49,49,49,50,50,50,51
  940.          db  51,51,51,52,52,52,52,53
  941.          db  53,53,54,54,54,54,55,55
  942.          db  55,55,56,56,56,57,57,57
  943.          db  57,58,58,58,59,59,59,59
  944.          db  60,60,60,61,61,61,61,62
  945.          db  62,62,63,63,63,64,64,64
  946.          db  64,65,65,65,66,66,66,67
  947.          db  67,67,68,68,68,68,69,69
  948.          db  69,70,70,70,71,71,71,72
  949.          db  72,72,73,73,73,74,74,74
  950.          db  75,75,75,76,76,76,77,77
  951.          db  77,78,78,78,79,79,79,80
  952.          db  80,80,81,81,81,82,82,82
  953.          db  83,83,83,84,84,84,85,85
  954.          db  85,86,86,87,87,87,88,88
  955.          db  88,89,89,89,90,90,90,91
  956.          db  91,92,92,92,93,93,93,94
  957.          db  94,94,95,95,96,96,96,97
  958.          db  97,97,98,98,98,99,99,100
  959.          db  100,100,101,101,101,102,102,103
  960.          db  103,103,104,104,104,105,105,106
  961.          db  106,106,107,107,108,108,108,109
  962.          db  109,109,110,110,111,111,111,112
  963.          db  112,113,113,113,114,114,114,115
  964.          db  115,116,116,116,117,117,118,118
  965.          db  118,119,119,119,120,120,121,121
  966.          db  121,122,122,123,123,123,124,124
  967.          db  125,125,125,126,126,127,127,127
  968.          db  128,128,128,129,129,130,130,130
  969.          db  131,131,132,132,132,133,133,134
  970.          db  134,134,135,135,136,136,136,137
  971.          db  137,137,138,138,139,139,139,140
  972.          db  140,141,141,141,142,142,142,143
  973.          db  143,144,144,144,145,145,146,146
  974.          db  146,147,147,147,148,148,149,149
  975.          db  149,150,150,151,151,151,152,152
  976.          db  152,153,153,154,154,154,155,155
  977.          db  155,156,156,157,157,157,158,158
  978.          db  158,159,159,159,160,160,161,161
  979.          db  161,162,162,162,163,163,163,164
  980.          db  164,165,165,165,166,166,166,167
  981.          db  167,167,168,168,168,169,169,170
  982.          db  170,170,171,171,171,172,172,172
  983.          db  173,173,173,174,174,174,175,175
  984.          db  175,176,176,176,177,177,177,178
  985.          db  178,178,179,179,179,180,180,180
  986.          db  181,181,181,182,182,182,183,183
  987.          db  183,184,184,184,185,185,185,186
  988.          db  186,186,186,187,187,187,188,188
  989.          db  188,189,189,189,190,190,190,190
  990.          db  191,191,191,192,192,192,193,193
  991.          db  193,193,194,194,194,195,195,195
  992.          db  196,196,196,196,197,197,197,198
  993.          db  198,198,198,199,199,199,199,200
  994.          db  200,200,201,201,201,201,202,202
  995.          db  202,203,203,203,203,204,204,204
  996.          db  204,205,205,205,205,206,206,206
  997.          db  206,207,207,207,208,208,208,208
  998.          db  209,209,209,209,210,210,210,210
  999.          db  211,211,211,211,212,212,212,212
  1000.          db  213,213,213,213,213,214,214,214
  1001.          db  214,215,215,215,215,216,216,216
  1002.          db  216,217,217,217,217,217,218,218
  1003.          db  218,218,219,219,219,219,219,220
  1004.          db  220,220,220,221,221,221,221,221
  1005.          db  222,222,222,222,222,223,223,223
  1006.          db  223,224,224,224,224,224,225,225
  1007.          db  225,225,225,226,226,226,226,226
  1008.          db  227,227,227,227,227,228,228,228
  1009.          db  228,228,229,229,229,229,229,229
  1010.          db  230,230,230,230,230,231,231,231
  1011.          db  231,231,232,232,232,232,232,232
  1012.          db  233,233,233,233,233,234,234,234
  1013.          db  234,234,234,235,235,235,235,235
  1014.          db  235,236,236,236,236,236,236,237
  1015.          db  237,237,237,237,237,238,238,238
  1016.          db  238,238,238,239,239,239,239,239
  1017.          db  239,240,240,240,240,240,240,241
  1018.          db  241,241,241,241,241,241,242,242
  1019.          db  242,242,242,242,243,243,243,243
  1020.          db  243,243,243,244,244,244,244,244
  1021.          db  244,244,245,245,245,245,245,245
  1022.          db  245,246,246,246,246,246,246,246
  1023.          db  247,247,247,247,247,247,247,248
  1024.          db  248,248,248,248,248,248,248,249
  1025.          db  249,249,249,249,249,249,249,250
  1026.          db  250,250,250,250,250,250,251,251
  1027.          db  251,251,251,251,251,251,252,252
  1028.          db  252,252,252,252,252,252,253,253
  1029.          db  253,253,253,253,253,253,253,254
  1030.          db  254,254,254,254,254,254,254,255
  1031.          db  255,255,255,255,255,255,255,255
  1032.  
  1033. tol      db  255,255,255,255,255,255,255,255
  1034.          db  255,255,255,255,255,255,255,255
  1035.          db  255,255,255,255,255,255,255,255
  1036.          db  255,255,255,255,255,255,255,255
  1037.          db  255,255,255,255,255,255,255,255
  1038.          db  255,255,255,255,255,255,255,255
  1039.          db  255,255,255,255,255,255,255,255
  1040.          db  255,255,255,255,255,255,255,255
  1041.          db  255,255,255,255,255,255,255,255
  1042.          db  255,255,255,255,255,255,255,255
  1043.          db  255,255,255,255,255,255,255,255
  1044.          db  255,255,255,255,255,255,255,255
  1045.          db  255,255,255,255,255,255,255,255
  1046.          db  255,255,255,255,255,255,255,255
  1047.          db  255,255,255,255,255,255,255,255
  1048.          db  255,255,255,255,255,255,255,75
  1049.          db  75,74,74,73,73,73,72,72
  1050.          db  72,71,71,71,70,70,70,69
  1051.          db  69,69,68,68,68,68,67,67
  1052.          db  67,66,66,66,66,65,65,65
  1053.          db  65,64,64,64,64,64,63,63
  1054.          db  63,63,62,62,62,62,62,61
  1055.          db  61,61,61,61,60,60,60,60
  1056.          db  60,60,59,59,59,59,59,59
  1057.          db  58,58,58,58,58,58,57,57
  1058.          db  57,57,57,57,57,56,56,56
  1059.          db  56,56,56,56,56,55,55,55
  1060.          db  55,55,55,55,55,54,54,54
  1061.          db  54,54,54,54,54,54,53,53
  1062.          db  53,53,53,53,53,53,53,53
  1063.          db  52,52,52,52,52,52,52,52
  1064.          db  52,52,52,51,51,51,51,51
  1065.          db  51,51,51,51,51,51,51,50
  1066.          db  50,50,50,50,50,50,50,50
  1067.          db  50,50,50,50,50,49,49,49
  1068.          db  49,49,49,49,49,49,49,49
  1069.          db  49,49,49,49,49,48,48,48
  1070.          db  48,48,48,48,48,48,48,48
  1071.          db  48,48,48,48,48,48,48,48
  1072.          db  47,47,47,47,47,47,47,47
  1073.          db  47,47,47,47,47,47,47,47
  1074.          db  47,47,47,47,47,47,46,46
  1075.          db  46,46,46,46,46,46,46,46
  1076.          db  46,46,46,46,46,46,46,46
  1077.          db  46,46,46,46,46,46,46,46
  1078.          db  46,46,46,45,45,45,45,45
  1079.          db  45,45,45,45,45,45,45,45
  1080.          db  45,45,45,45,45,45,45,45
  1081.          db  45,45,45,45,45,45,45,45
  1082.          db  45,45,45,45,45,45,45,45
  1083.          db  45,44,44,44,44,44,44,44
  1084.          db  44,44,44,44,44,44,44,44
  1085.          db  44,44,44,44,44,44,44,44
  1086.          db  44,44,44,44,44,44,44,44
  1087.          db  44,44,44,44,44,44,44,44
  1088.          db  44,44,44,44,44,44,44,44
  1089.          db  44,44,44,44,44,44,44,44
  1090.          db  44,44,44,44,44,44,44,44
  1091.          db  44,44,44,44,44,44,44,44
  1092.          db  44,44,44,44,44,44,44,43
  1093.          db  43,43,43,43,43,43,43,43
  1094.          db  43,43,43,43,43,43,43,43
  1095.          db  43,43,43,43,43,43,43,43
  1096.          db  43,43,43,43,43,43,43,43
  1097.          db  43,43,43,43,43,43,43,43
  1098.          if use_half_stars eq no
  1099.          db  43,43,43,43,43,43,43,43
  1100.          db  43,43,43,43,43,43,43,43
  1101.          db  43,43,43,43,43,43,43,43
  1102.          db  43,43,44,44,44,44,44,44
  1103.          db  44,44,44,44,44,44,44,44
  1104.          db  44,44,44,44,44,44,44,44
  1105.          db  44,44,44,44,44,44,44,44
  1106.          db  44,44,44,44,44,44,44,44
  1107.          db  44,44,44,44,44,44,44,44
  1108.          db  44,44,44,44,44,44,44,44
  1109.          db  44,44,44,44,44,44,44,44
  1110.          db  44,44,44,44,44,44,44,44
  1111.          db  44,44,44,44,44,44,44,44
  1112.          db  45,45,45,45,45,45,45,45
  1113.          db  45,45,45,45,45,45,45,45
  1114.          db  45,45,45,45,45,45,45,45
  1115.          db  45,45,45,45,45,45,45,45
  1116.          db  45,45,45,45,45,45,46,46
  1117.          db  46,46,46,46,46,46,46,46
  1118.          db  46,46,46,46,46,46,46,46
  1119.          db  46,46,46,46,46,46,46,46
  1120.          db  46,46,46,47,47,47,47,47
  1121.          db  47,47,47,47,47,47,47,47
  1122.          db  47,47,47,47,47,47,47,47
  1123.          db  47,48,48,48,48,48,48,48
  1124.          db  48,48,48,48,48,48,48,48
  1125.          db  48,48,48,48,49,49,49,49
  1126.          db  49,49,49,49,49,49,49,49
  1127.          db  49,49,49,49,50,50,50,50
  1128.          db  50,50,50,50,50,50,50,50
  1129.          db  50,50,51,51,51,51,51,51
  1130.          db  51,51,51,51,51,51,52,52
  1131.          db  52,52,52,52,52,52,52,52
  1132.          db  52,53,53,53,53,53,53,53
  1133.          db  53,53,53,54,54,54,54,54
  1134.          db  54,54,54,54,55,55,55,55
  1135.          db  55,55,55,55,56,56,56,56
  1136.          db  56,56,56,56,57,57,57,57
  1137.          db  57,57,57,58,58,58,58,58
  1138.          db  58,59,59,59,59,59,59,60
  1139.          db  60,60,60,60,60,61,61,61
  1140.          db  61,61,62,62,62,62,62,63
  1141.          db  63,63,63,64,64,64,64,64
  1142.          db  65,65,65,65,66,66,66,66
  1143.          db  67,67,67,68,68,68,68,69
  1144.          db  69,69,70,70,70,71,71,71
  1145.          db  72,72,72,73,73,73,74,74
  1146.          db  75,75,255,255,255,255,255,255
  1147.          db  255,255,255,255,255,255,255,255
  1148.          db  255,255,255,255,255,255,255,255
  1149.          db  255,255,255,255,255,255,255,255
  1150.          db  255,255,255,255,255,255,255,255
  1151.          db  255,255,255,255,255,255,255,255
  1152.          db  255,255,255,255,255,255,255,255
  1153.          db  255,255,255,255,255,255,255,255
  1154.          db  255,255,255,255,255,255,255,255
  1155.          db  255,255,255,255,255,255,255,255
  1156.          db  255,255,255,255,255,255,255,255
  1157.          db  255,255,255,255,255,255,255,255
  1158.          db  255,255,255,255,255,255,255,255
  1159.          db  255,255,255,255,255,255,255,255
  1160.          db  255,255,255,255,255,255,255,255
  1161.          db  255,255,255,255,255,255,255,255
  1162.          endif
  1163.  
  1164. code32   ends
  1165.          end
  1166.